package com.sh.weblogspringboot.common.util;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sh.weblogspringboot.common.domain.dos.CategoryDO;
import lombok.Data;

import java.util.List;
import java.util.Objects;

/**
 * @author songHai
 * @Classname PageResponse
 * @Description
 * @Date 2025/3/30 18:26
 */
@Data
public class PageResponse<T> extends Response<List<T>> {

    /**
     * 总记录数
     */
    private long total = 0;


    /**
     * 每页显示的记录数， 默认每页显示10条
     */
    private long size = 10L;

    /**
     * 当前页面
     */
    private long current;

    /**
     * 总页数
     */
    private long pages;

    /**
     * 成功响应.
     *
     * @param page
     * @param list
     * @param <T>
     * @return
     */
    public static <T> PageResponse<T> success(IPage page, List<T> list) {
        PageResponse<T> response = new PageResponse<>();
        response.setSuccess(true);
        response.setCurrent(Objects.isNull(page) ? 1L : page.getCurrent());
        response.setSize(Objects.isNull(page) ? 10L : page.getSize());
        response.setPages(Objects.isNull(page) ? 0 : page.getPages());
        response.setTotal(Objects.isNull(page) ? 0L : page.getTotal());
        response.setData(list);

        return response;
    }


}
